SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROC [dbo].[SP_TXMVTO_CNTB_Q03]  
/*-------------------------------------------------------------------*/  
/*----- Empresa           : OFISIS S.A.                          ----*/  
/*----- Cliente           : OFISIS S.A.                          ----*/  
/*----- Sistema           : Contabilidad                         ----*/  
/*----- Modulo            : Empresa                              ----*/  
/*----- Programa          : Busca saldo de documentos            ----*/  
/*----- Nombre            : SP_TXMVTO_CNTB_Q03                   ----*/  
/*----- Script            : TXMVTO_CNTB                          ----*/  
/*----- Desarrollado por  : Israel Estrada Polanco               ----*/  
/*----- Fecha             : 31/07/1997                           ----*/  
/*----- Base de Datos     : MS SQL Server                        ----*/  
/*----- Version BD        : 6.5                                  ----*/  
/*-------------------------------------------------------------------*/  
/*-------------------------------------------------------------------*/  
/*----- Modificado 1 por : Percy Garcia                          ----*/  
/*----- Fecha Modifica   : 10/01/2004                            ----*/  
/*----- Detalle Modifica : Extrae la moneda del saldo            ----*/  
/*-------------------------------------------------------------------*/  
/*-------------------------------------------------------------------*/  
/*----- Modificado 2 por : Percy Garcia                          ----*/  
/*----- Fecha Modifica   : 19/03/2004                            ----*/  
/*----- Detalle Modifica : VALIDACION SALDO NO TOMA EN CUENTA ASTO DIF DE CAMBIO     ----*/  
/*-------------------------------------------------------------------*/  
/*----- Drop proc SP_TXMVTO_CNTB_Q03                             ----*/  
/*----- Grant all on SP_TXMVTO_CNTB_Q03 to PUBLIC                ----*/  
/*----- SP_TXMVTO_CNTB_Q03                                       ----*/  
/*-------------------------------------------------------------------*/  
  
@ISCO_EMPR  TD_VC_002,  
@INNU_CNTB_EMPR  TD_IN_001_CONT,  
@INNU_ANNO   TD_IN_004_ANNO,  
@INNU_MESE  TD_IN_002_MESE,  
@ISCO_CNTA_EMPR  TD_VC_020_CNTA,  
@ISTI_AUXI_EMPR  TD_VC_001,  
@ISCO_AUXI_EMPR  TD_VC_020,  
@ISTI_DOCU  TD_VC_003,  
@ISNU_DOCU  TD_VC_020  
     --   with encryption
As  
  
Declare  
 @VNIM_CARG  TD_NU_016_004,  
 @VNIM_ABON  TD_NU_016_004,  
 @VSCO_MONE             TD_VC_003,  
 @VSID_DIFE             TD_VC_003,   
 @VSID_0004             TD_VC_003,   
 @ONIM_SALD  TD_NU_016_004, 
 @VSCO_ORDE_SERV        TD_VC_020,  
  @VDFE_DOCU            TD_DT_001,
  @VDFE_DOCU_VENC       TD_DT_001
 -- EXTRAE LOS IDS DE LAS OPERACIONES DE DIF. DE CAMBIO   
 Select @VSID_DIFE = ''  
 Select @VSID_0004 = ''  
 Select Top 1 @VSID_DIFE = IsNull(Rtrim(ID_DIFE), ''), @VSID_0004 = IsNull(Rtrim(ID_0004), '')  
 From TTCNTB_EMPR   
 Where CO_EMPR = @ISCO_EMPR   
 And NU_CNTB_EMPR = @INNU_CNTB_EMPR   
  
 -- NO TOMA EN CUENTA LA LINEA DE DIFERENCIA DE CAMBIO  
Select @VNIM_CARG = IsNull( SUM( ( ROUND( ((ASCII(t1.TI_OPER)/67) * Isnull(t1.IM_MVTO_ORIG, 0)), 2))), 0),  
 @VNIM_ABON = IsNull( SUM( ( ROUND( ((65/ASCII(t1.TI_OPER)) * Isnull(t1.IM_MVTO_ORIG, 0)), 2))), 0),   
              @VSCO_MONE = Max(t1.CO_MONE), 
 @VSCO_ORDE_SERV = Max(t1.CO_ORDE_SERV),
 @VDFE_DOCU =  Max(t1.FE_DOCU),
 @VDFE_DOCU_VENC = Max(t1.FE_DOCU_VENC)
From TXMVTO_CNTB t1--(index = ITXMVTO_CNTB_02 )  
Where t1.CO_EMPR = @ISCO_EMPR  
and t1.NU_CNTB_EMPR = @INNU_CNTB_EMPR  
and t1.NU_ANNO  = @INNU_ANNO  
and t1.NU_MESE  <= @INNU_MESE  
and t1.CO_CNTA_EMPR = @ISCO_CNTA_EMPR  
and t1.TI_AUXI_EMPR = @ISTI_AUXI_EMPR  
and t1.CO_AUXI_EMPR = @ISCO_AUXI_EMPR  
and t1.TI_DOCU = @ISTI_DOCU  
and t1.NU_DOCU = @ISNU_DOCU  
and t1.SI_MVTO_CNTB In ( 'APR', 'DIG')  
And     Not Exists (Select t2.CO_EMPR From TTIDEN_OPER t2  
   Where t2.CO_EMPR = @ISCO_EMPR   
   And t2.NU_CNTB_EMPR = @INNU_CNTB_EMPR   
   And t2.ID_OPRC In (@VSID_DIFE, @VSID_0004)  
   And t2.CO_OPRC_CNTB = t1.CO_OPRC_CNTB )  
  
Select @ONIM_SALD = @VNIM_CARG - @VNIM_ABON  
  
If @ONIM_SALD > 0  
 Select 'ABO', (@ONIM_SALD), @VSCO_MONE,@VSCO_ORDE_SERV,@VDFE_DOCU,@VDFE_DOCU_VENC 
Else If @ONIM_SALD < 0  
 Select 'CAR', abs(@ONIM_SALD), @VSCO_MONE,@VSCO_ORDE_SERV,@VDFE_DOCU,@VDFE_DOCU_VENC    
Else If @ONIM_SALD = 0  
 Select 'CAR', 0, @VSCO_MONE,@VSCO_ORDE_SERV,@VDFE_DOCU,@VDFE_DOCU_VENC   
Return  
/*------------------------------------- Fin -----------------------------------*/



GO
